home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C / Applications / Python 1.3.3 / stdwin / Packs / textedit / textdbg.c < prev    next >
Text File  |  1995-12-21  |  2KB  |  112 lines

  1. /* Text Edit, debugging code */
  2.  
  3. #include "text.h"
  4.  
  5. #ifndef macintosh
  6.  
  7. /*VARARGS1*/
  8. dprintf(fmt, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
  9.     char *fmt;
  10. {
  11.     printf("\r\n");
  12.     printf(fmt, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
  13.     printf("\r\n");
  14. }
  15.  
  16. #endif
  17.  
  18. #ifndef NDEBUG
  19.  
  20. /* Check the world's consistency */
  21.  
  22. techeck(tp, line)
  23.     TEXTEDIT *tp;
  24.     int line;
  25. {
  26.     lineno i;
  27.  
  28. #define zck(n) ((n) || dprintf("zck(n) line %d", line))
  29.     
  30.     zck(tp->nlines >= 1);
  31.     
  32.     zck(tp->start[0] == zaddgap(0));
  33.     zck(tp->start[tp->nlines] == tp->buflen);
  34.     
  35.     zck(0 <= tp->gap);
  36.     zck(0 <= tp->gaplen);
  37.     zck(zgapend <= tp->buflen);
  38.     
  39.     zck(0 <= tp->foc);
  40.     zck(0 <= tp->foclen);
  41.     zck(zfocend <= tp->buflen-tp->gaplen);
  42.     
  43.     for (i= 0; i < tp->nlines; ++i) {
  44.         if (i < tp->nlines-1)
  45.             { zck(tp->start[i] < tp->start[i+1]); }
  46.         else
  47.             { zck(tp->start[i] <= tp->start[tp->nlines]); }
  48.         zck(tp->start[i] < tp->gap || zgapend <= tp->start[i]);
  49.     }
  50.  
  51. #undef zck
  52.  
  53. }
  54.  
  55. #if 0
  56.  
  57. /* Dump the world's state to the screen (call from drawproc) */
  58.  
  59. zdebug(left, top, right, bottom)
  60. {
  61.     int h, v;
  62.     int i, j;
  63.     
  64.     h= 0, v= 15*wlh; if (v >= bottom) return;
  65.     zprintf(h, v, "buflen=%d nlines=%d foc=%d foclen=%d gap=%d gaplen=%d.",
  66.         buflen, nlines, foc, foclen, gap, gaplen);
  67.     h= 0, v += wlh; if (v >= bottom) return;
  68.     for (i= 0; i <= nlines; ++i) {
  69.         h= zprintf(h, v, "%d:%d ", i, start[i]);
  70.     }
  71.     h= 0, v += wlh; if (v >= bottom) return;
  72.     for (i= 0; i <= buflen; ++i) {
  73.         h= zprintf(h, v, "%c",
  74.             i == zaddgap(foc) ?
  75.                 (foclen == 0 ? '|' : '[') :
  76.                 (i == zaddgap(focend) ? ']' : ' '));
  77.         if (i >= buflen)
  78.             break;
  79.         if (i >= gap && i < gapend)
  80.             h= zprintf(h, v, "**");
  81.         else
  82.             h= zprintf(h, v, "%02x", buf[i] & 0xff);
  83.     }
  84.     h= 0, v += wlh; if (v >= bottom) return;
  85.     for (i= 0; i <= buflen; ++i) {
  86.         for (j= 0; j <= nlines; ++j)
  87.             if (i == start[j])
  88.                 break;
  89.         if (j <= nlines)
  90.             h= zprintf(h, v, "%-3d", j);
  91.         else
  92.             h= zprintf(h, v, "   ");
  93.     }
  94. }
  95.  
  96. /* Printf into the window (could be of general use).
  97.    NB: doesn't recognize \n */
  98.  
  99. static
  100. zprintf(h, v, fmt, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
  101.     int h, v;
  102.     char *fmt;
  103. {
  104.     char buf[256];
  105.     sprintf(buf, fmt, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
  106.     return wdrawtext(h, v, buf, -1);
  107. }
  108.  
  109. #endif
  110.  
  111. #endif /* !NDEBUG */
  112.